package com.xhtt.modules.task.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * <p>
 * 船分支任务
 * </p>
 *
 * @author feipc
 * @since 2019-03-01
 */
@Data
public class TaskShipSeo {

    @TableId(value = "spp_id", type = IdType.INPUT)
    private Integer sppId;//task_ship_plan_product id

    private Integer spId;//task_ship_plan id

    private LocalDateTime date;//日期

    private Integer productId;//产品id

    private String productName;//产品名称

    private String potName;//罐名称

    private String shipName;//船

    private Integer planType;//计划类型  装船或卸船

    private Integer planStatus;

    @TableField(exist = false)
    private String planStatusName;

    @TableField(exist = false)
    private String planTypeName;

    private String berthName;//泊位

    private String teamName;//班组

    private Integer hoseStatus;//管线连接任务状态
    @TableField(exist = false)
    private String hoseStatusName;

    private LocalDateTime hosePlanStartTime;//管线连接任务计划开始时间 不用显示，计算用的

    private LocalDateTime hoseStartTime;//管线连接实际开始时间=岸方开始接软管时间
    @TableField(exist = false)
    private int hoseStartTimeIfWarn;//

    private LocalDateTime hoseFinishTime;//管线连接实际结束时间=岸方结束接软管时间
    @TableField(exist = false)
    private int hoseFinishTimeIfWarn;//

    private Integer dcqyStatus;//打尺取样任务状态
    @TableField(exist = false)
    private String dcqyStatusName;

    private LocalDateTime dcqyPlanStartTime;//打尺取样任务计划开始时间 不用显示，计算用的

    private LocalDateTime dcqyStartTime;//打尺取样任务实际开始时间
    @TableField(exist = false)
    private int dcqyStartTimeIfWarn;//

    private LocalDateTime dcqyFinishTime;//打尺取样任务实际结束时间
    @TableField(exist = false)
    private int dcqyFinishTimeIfWarn;//

    private String lmUser;//lm作业人员     只要第一条显示，结果要处理

    private Integer lmStatus;//lm作业状态   只要第一条显示，结果要处理
    @TableField(exist = false)
    private String lmStatusName;

    private Integer ballStatus;//通球作业状态  只要第一条显示，结果要处理
    @TableField(exist = false)
    private String ballStatusName;

    private LocalDateTime ballPlanStartTime;//通球作业计划开始时间 不用显示，计算用的

    private LocalDateTime ballStartTime;//通球作业实际开始时间  只要第一条显示，结果要处理
    @TableField(exist = false)
    private int ballStartTimeIfWarn;//

    private LocalDateTime ballFinishTime;//通球作业实际结束时间  只要第一条显示，结果要处理
    @TableField(exist = false)
    private int ballFinishTimeIfWarn;//

    private Integer ccrStatus;//ccr作业状态  只要第一条显示，结果要处理
    @TableField(exist = false)
    private String ccrStatusName;

    private LocalDateTime planKb;//预计靠泊时间 只要第一条显示，结果要处理

    private LocalDateTime kb;//实际靠泊时间

//    private LocalDateTime 岸方开始接软管时间;
//    private LocalDateTime 岸方结束接软管时间;
//    private LocalDateTime 船方接软管时间;

    private LocalDateTime dlsc;//商检上船时间=代理上船时间

//    private LocalDateTime 取样结束时间;

    private LocalDateTime jlwc;//商检计量结束时间=计量完成时间（最晚）

    private LocalDateTime lmdl;//L/M上船时间=/L/M登轮时间

    private LocalDateTime aqhy;//安全会议结束时间=安全会议时间

    private LocalDateTime qb;//启泵时间(最早)

    private LocalDateTime tb;//停泵时间（最晚）

    private LocalDateTime sjddyc;//商检验空舱时间=商检达到验舱时间（最晚）

    private LocalDateTime cg;//拆除软管时间=拆管时间（最晚）

    private LocalDateTime lb;//离泊时间

//    private LocalDateTime 后尺开始时间;
//    private LocalDateTime 后尺结束时间;


    @TableField(exist = false)
    private String operDetail;//现场操作详情，用于解析LM任务详情
    @TableField(exist = false)
    private String source;//判断是不是seo表出来的数据

    public String getPlanTypeName() {
        if (null == planType) {
            return "";
        } else if (1 == planType.intValue()) {
            return "装";
        } else if (2 == planType.intValue()) {
            return "卸";
        }
        return "";
    }

    public String getHoseStatusName() {
        if (null != hoseStatus && hoseStatus.intValue() == 10) {
            return "已完成";
        } else {
            return "";
        }
    }

    public String getDcqyStatusName() {
        if (null != hoseStatus && hoseStatus.intValue() == 10) {
            return "已完成";
        } else {
            return "";
        }
    }

    public String getLmStatusName() {
        if (null != lmStatus && lmStatus.intValue() == 10) {
            return "已完成";
        } else {
            return "";
        }
    }

    public String getBallStatusName() {
        if (null != ballStatus && ballStatus.intValue() == 10) {
            return "已完成";
        } else {
            return "";
        }
    }

    public String getCcrStatusName() {
        if (null != ccrStatus && ccrStatus.intValue() == 10) {
            return "已完成";
        } else {
            return "";
        }
    }

    public String getPlanStatusName() {
        if (null != planStatus && planStatus.intValue() == 10) {
            return "已完成";
        } else {
            return "未完成";
        }
    }
}
